package com.apartment.own.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.apartment.own.domain.OwnResHouseResource;
import com.apartment.own.request.house.HouseInsertRequest;
import com.apartment.own.request.house.HouseQuery;
import com.apartment.own.response.res.CommonGroupResponse;
import com.apartment.own.response.common.ExitCityResp;
import com.apartment.own.response.res.HouseSelectResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 房源Service接口
 * 
 * @author @Dog_E
 * @date 2020-08-28
 */
public interface IOwnResHouseResourceService extends IService<OwnResHouseResource>
{
    /**
     * 查询房源
     * 
     * @param id 房源ID
     * @return 房源
     */
    public OwnResHouseResource selectOwnResHouseResourceById(Long id);

    /**
     * 查询房源列表
     * 
     * @param ownResHouseResource 房源
     * @return 房源集合
     */
    public List<OwnResHouseResource> selectOwnResHouseResourceList(OwnResHouseResource ownResHouseResource);

    /**
     * 新增房源
     * 
     * @param ownResHouseResource 房源
     * @return 结果
     */
    public int insertOwnResHouseResource(OwnResHouseResource ownResHouseResource);

    /**
     * 修改房源
     * 
     * @param ownResHouseResource 房源
     * @return 结果
     */
    public int updateOwnResHouseResource(OwnResHouseResource ownResHouseResource);

    /**
     * 批量删除房源
     * 
     * @param ids 需要删除的房源ID
     * @return 结果
     */
    public int deleteOwnResHouseResourceByIds(Long[] ids);

    /**
     * 删除房源信息
     *
     * @param id 房源ID
     * @return 结果
     */
    public int deleteOwnResHouseResourceById(Long id);

    /**
     * des. 编辑房源的基础信息
     * @author       : RazaJin
     * @param        :
     * @return       :
     * @date         : 2020/8/28 0028 上午 11:18
     */
    int editBaseHouseInformation(HouseInsertRequest request);

    /**
     * des. 查询房间
     * @author       : RazaJin
     * @date         : 2020/9/8 0008 上午 10:47
     */
    List<CommonGroupResponse> listHouse(HouseQuery request);

    HouseInsertRequest houseInfo(String id);

    List<CommonGroupResponse>  listExistCity();

    List<Map> listHouseByHouseName(HouseQuery request);

    List<CommonGroupResponse> listExistPlot(String[] cityId);
}
